home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
short29.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
47KB
|
2,168 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "short.h"
/*No:CREATION_CLAUSE_LIST.fz_cbe*/
/*No:CREATION_CLAUSE_LIST.fatal_error_vtec_2*/
T0* r16start_position(T16* C){
T0* R=NULL;
R=((T74*)(r75first((T75*)((C)->_list/*0*/))))->_start_position/*0*/;
return R;
}
/*No:CREATION_CLAUSE_LIST.add_last*/
T0* r16get_clause(T16* C,T0* a1){
T0* R=NULL;
T2 _i=0;
_i=1;
while (!(((_i)>(((T75*)((C)->_list/*0*/))->_upper/*8*/))||(r74has((T74*)(r75item((T75*)((C)->_list/*0*/),_i)),a1)))) {
_i=(_i)+(1);
}
/*[IF*/
if((_i)<=(((T75*)((C)->_list/*0*/))->_upper/*8*/)){
R=r75item((T75*)((C)->_list/*0*/),_i);
}
/*FI]*/
return R;
}
T0* r16expanded_initializer(T16* C,T0* a1){
T0* R=NULL;
R=r74expanded_initializer((T74*)(r75item((T75*)((C)->_list/*0*/),1)),a1);
return R;
}
/*No:CREATION_CLAUSE_LIST.make*/
/*No:CREATION_CLAUSE_LIST.list*/
T6 r16short(T16* C){
T6 R=0;
T2 _i=0;
_i=1;
while (!((_i)>(((T75*)((C)->_list/*0*/))->_upper/*8*/))) {
R=(r74short((T74*)(r75item((T75*)((C)->_list/*0*/),_i)),R))||(R);
_i=(_i)+(1);
}
return R;
}
/*No:CREATION_CLAUSE_LIST.fatal_error*/
void r16check_expanded_with(T16* C,T0* a1){
/*[IF*/
if((((T75*)((C)->_list/*0*/))->_upper/*8*/)>(1)){
r67add_type(a1,((T0*)ms12_23835));
r67add_position(((T74*)(r75item((T75*)((C)->_list/*0*/),1)))->_start_position/*0*/);
r67add_position(((T74*)(r75item((T75*)((C)->_list/*0*/),2)))->_start_position/*0*/);
/*[IRF3.2fatal_error_vtec_2*//*[IRF3.6fatal_error*/{T0* b1=((T0*)ms11_572294);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
/*]*/
}
/*FI]*/
r74check_expanded_with((T74*)(r75item((T75*)((C)->_list/*0*/),1)),a1);
}
T0* r310get_feature_with(T310* C,T0* a1){
T0* R=NULL;
T0* _sfn=NULL;
/*[IF*/
if(r317has((T317*)((C)->_feature_dictionary/*24*/),a1)){
R=r317at((T317*)((C)->_feature_dictionary/*24*/),a1);
}
else{
{T135*n=malloc(sizeof(*n));
*n=M135;
r135make(n,a1,NULL);
_sfn=(T0*)n;
}
R=r310get_feature(C,_sfn);
}
/*FI]*/
return R;
}
/*No:RUN_CLASS.actuals_clients*/
T0* r310base_class(T310* C){
T0* R=NULL;
R=X46base_class((C)->_current_type/*0*/);
return R;
}
T0* r310get_or_fatal_error(T310* C,T0* a1){
T0* R=NULL;
R=r310get_feature(C,a1);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(X77start_position(a1));
/*[IRF3.6append*/{T0* b1=((T0*)ms310_6176);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X77to_string(a1);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms310_62016);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67add_type((C)->_current_type/*0*/,((T0*)ms12_47));
r67print_as_fatal_error((T67*)(oBC11eh));
}
/*FI]*/
return R;
}
void r310used_as_reference(T310* C){
T0* _type_ref_to_exp=NULL;
T0* _rtm=NULL;
_rtm=X46run_time_mark((C)->_current_type/*0*/);
/*[IF*/
if(!(r359has((T359*)(oBC310to_reference_memory),_rtm))){
{T358*n=malloc(sizeof(*n));
*n=M358;
r358make(n,(C)->_current_type/*0*/);
_type_ref_to_exp=(T0*)n;
}
r359put((T359*)(oBC310to_reference_memory),_type_ref_to_exp,_rtm);
}
/*FI]*/
}
/*No:RUN_CLASS.running*/
T0* r310get_rf(T310* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _bcn=NULL;
T0* _tfg=NULL;
T0* _constraint=NULL;
T0* _target_type=NULL;
T0* _wbc2=NULL;
T0* _wbc=NULL;
T0* _fn2=NULL;
T6 _is_current=0;
_target_type=X53result_type(a1);
_is_current=X53is_current(a1);
_wbc=r69base_class((T69*)(X77start_position(a2)));
/*[IF*/
if((_is_current)||(X46is_like_current(_target_type))){
_fn2=r22new_name_of((T22*)(X46base_class(_target_type)),_wbc,a2);
/*[IF*/
if((_fn2)!=((void*)(a2))){
r67add_position(X77start_position(a2));
R=r310get_or_fatal_error(C,_fn2);
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
else{
R=r310get_or_fatal_error(C,a2);
}
/*FI]*/
}
else if(X46is_formal_generic(_target_type)){
_tfg=_target_type;
if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
case 267:
break;
default:
_tfg=NULL;
};_constraint=r267constraint(((T267*)_tfg));
/*[IF*/
if((_constraint)==((void*)(NULL))){
R=r310get_or_fatal_error(C,a2);
}
else if(!(r267is_a(((T267*)_tfg),_constraint))){
r67print_as_error((T67*)(oBC11eh));
r67add_position(X77start_position(a2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms310_64192);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
else{
_wbc2=r69base_class((T69*)(X46start_position(_constraint)));
/*[IF*/
if(((_wbc2)==((void*)(_wbc)))||(r22is_subclass_of(((T22*)_wbc),_wbc2))){
_fn2=r22new_name_of((T22*)(r267base_class(((T267*)_tfg))),X46base_class(_constraint),a2);
R=r310get_or_fatal_error(C,_fn2);
}
else{
R=r310get_or_fatal_error(C,a2);
}
/*FI]*/
}
/*FI]*/
}
else{
R=r310get_or_fatal_error(C,a2);
}
/*FI]*/
X312add_client(R,(T0*)C);
/*[IF*/
if(((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0))&&(!(_is_current))){
_bcn=((T22*)(X46base_class(a3)))->_name/*24*/;
/*[IF*/
if(!(X312is_exported_in(R,_bcn))){
r67add_position(X312start_position(R));
/*[IRF3.6append*/{T0* b1=((T0*)ms310_24045);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X77to_string(a2);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r310error(X77start_position(a2),((T0*)ms310_5054));
r67add_position(X77start_position(a2));
/*[IRF3.6append*/{T0* b1=((T0*)ms310_68679);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark(a3);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_47);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
T0*oBC310to_reference_memory=NULL;
T0* r310get_feature(T310* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
T0* _fn_key=NULL;
T0* _f=NULL;
_fn_key=X77to_key(a1);
/*[IF*/
if(r317has((T317*)((C)->_feature_dictionary/*24*/),_fn_key)){
R=r317at((T317*)((C)->_feature_dictionary/*24*/),_fn_key);
}
else{
_bc=r310base_class(C);
_f=r22look_up_for(((T22*)_bc),(T0*)C,a1);
/*[IF*/
if((_f)==((void*)(NULL))){
r310efnf(C,_bc,a1);
}
else{
R=X87to_run_feature(_f,(C)->_current_type/*0*/,a1);
/*[IF*/
if((R)!=((void*)(NULL))){
r310store_feature(C,R);
}
else{
r310efnf(C,_bc,a1);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:RUN_CLASS.strip_used*/
/*No:RUN_CLASS.id*/
int fBC11class_general=0;
T0*oBC11class_general=NULL;
T0* r310class_general(void){
if(fBC11class_general==0){
fBC11class_general=1;
oBC11class_general=r310class_with(((T0*)ms13_6412));
}
return oBC11class_general;}
T0* r310at(T310* C,T0* a1){
T0* R=NULL;
T0* _to_key=NULL;
_to_key=X77to_key(a1);
/*[IF*/
if(r317has((T317*)((C)->_feature_dictionary/*24*/),_to_key)){
R=r317at((T317*)((C)->_feature_dictionary/*24*/),_to_key);
}
/*FI]*/
return R;
}
T0* r310get_copy(T310* C){
T0* R=NULL;
R=r310get_rf_with(C,/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r22get_copy((T22*)(r310class_general()))))->_names/*8*/)),1)/*)*/));
return R;
}
/*No:RUN_CLASS.at_run_time*/
/*No:RUN_CLASS.add_rf*/
/*No:RUN_CLASS.runnable_class_invariant_done*/
void r310set_at_run_time(T310* C){
T2 _i=0;
T0* _rc=NULL;
T0* _rcd=NULL;
/*[IF*/
if(!((C)->_at_run_time/*8*/)){
C->_at_run_time=1;
C->_compile_to_c_done=0;
C->_runnable_class_invariant_done=0;
r310add_running(C,(T0*)C);
r59incr_magic_count((T59*)(oBC11small_eiffel));
/*[IF*/
if(X46is_reference((C)->_current_type/*0*/)){
_rcd=oBC59run_class_dictionary;
_i=1;
while (!((_i)>((((T320*)_rcd))->_count/*36*/))) {
_rc=r320item(((T320*)_rcd),_i);
/*[IF*/
if(r310is_running_of(C,_rc)){
r310add_running(((T310*)_rc),(T0*)C);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
/*FI]*/
}
/*No:RUN_CLASS.fatal_error*/
/*No:RUN_CLASS.nb_errors*/
/*No:RUN_CLASS.feature_dictionary*/
void r310store_feature(T310* C,T0* a1){
T0* _rf_key=NULL;
_rf_key=X77to_key(/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
/*[IF*/
if(r317has((T317*)((C)->_feature_dictionary/*24*/),_rf_key)){
}
else{
r317put((T317*)((C)->_feature_dictionary/*24*/),a1,_rf_key);
r59incr_magic_count((T59*)(oBC11small_eiffel));
}
/*FI]*/
}
/*No:RUN_CLASS.us_general*/
/*No:RUN_CLASS.set_strip_used*/
T0* r310get_rf_with(T310* C,T0* a1){
T0* R=NULL;
T0* _wbc=NULL;
T0* _fn2=NULL;
_wbc=r69base_class((T69*)(X77start_position(a1)));
_fn2=r22new_name_of((T22*)(r310base_class(C)),_wbc,a1);
/*[IF*/
if((_fn2)!=((void*)(a1))){
r67add_position(X77start_position(a1));
R=r310get_or_fatal_error(C,_fn2);
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
else{
R=r310get_or_fatal_error(C,_fn2);
}
/*FI]*/
return R;
}
/*No:RUN_CLASS.current_type*/
T0* r310class_with(T0* a1){
T0* R=NULL;
R=r59get_class(a1);
return R;
}
void r310add_running(T310* C,T0* a1){
/*[IF*/
if(((C)->_running/*12*/)==((void*)(NULL))){
C->_running=se_ma323(1,
a1);
}
else{
/*[IF*/
if(!(r323fast_has((T323*)((C)->_running/*12*/),a1))){
r323add_last((T323*)((C)->_running/*12*/),a1);
}
/*FI]*/
}
/*FI]*/
}
T6 r310is_running_of(T310* C,T0* a1){
T6 R=0;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((a1)==((void*)(C))){
R=1;
}
else{
_t1=(C)->_current_type/*0*/;
_t2=(((T310*)a1))->_current_type/*0*/;
/*[IF*/
if((X46is_basic_eiffel_expanded(_t1))&&(X46is_basic_eiffel_expanded(_t2))){
}
else{
R=X46is_a(_t1,_t2);
/*[IF*/
if(!(R)){
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
void r310add_client(T310* C,T0* a1){
T2 _i=0;
_i=r321fast_index_of((T321*)((C)->_actuals_clients/*36*/),a1);
/*[IF*/
if((_i)>(((T321*)((C)->_actuals_clients/*36*/))->_upper/*8*/)){
r321add_last((T321*)((C)->_actuals_clients/*36*/),a1);
}
/*FI]*/
}
/*No:RUN_CLASS.fz_dot*/
/*No:RUN_CLASS.compile_to_c_done*/
void r310error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:RUN_CLASS.class_invariant*/
void r310make(T310* C,T0* a1){
T2 _i=0;
T0* _rc=NULL;
T0* _rcd=NULL;
T0* _run_string=NULL;
C->_compile_to_c_done=1;
C->_current_type=a1;
{T321*n=malloc(sizeof(*n));
*n=M321;
r321with_capacity(n,16);
C->_actuals_clients=(T0*)n;
}
_run_string=X46run_time_mark(a1);
C->_id=r95item((T95*)(r310id_provider()),_run_string);
r320put((T320*)(oBC59run_class_dictionary),(T0*)C,_run_string);
{T317*n=malloc(sizeof(*n));
*n=M317;
/*[IRF3.4make*/r317with_capacity(n,32);
/*]*/
C->_feature_dictionary=(T0*)n;
}
r59incr_magic_count((T59*)(oBC11small_eiffel));
/*[IF*/
if(X46is_expanded(a1)){
r310set_at_run_time(C);
r22check_expanded_with((T22*)(X46base_class(a1)),a1);
}
else{
_rcd=oBC59run_class_dictionary;
_i=1;
while (!((_i)>((((T320*)_rcd))->_count/*36*/))) {
_rc=r320item(((T320*)_rcd),_i);
/*[IF*/
if((((((T310*)_rc))->_at_run_time/*8*/)&&(X46is_reference((((T310*)_rc))->_current_type/*0*/)))&&(r310is_running_of(((T310*)_rc),(T0*)C))){
r310add_running(C,_rc);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
int fBC11id_provider=0;
T0*oBC11id_provider=NULL;
T0* r310id_provider(void){
if(fBC11id_provider==0){
fBC11id_provider=1;
{T95*n=malloc(sizeof(*n));
*n=M95;
r95make(n);
oBC11id_provider=(T0*)n;
}
}
return oBC11id_provider;}
void r310efnf(T310* C,T0* a1,T0* a2){
/*[IRF3.6append*/{T0* b1=((T0*)ms310_16640);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark((C)->_current_type/*0*/);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms310_23892);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X77to_string(a2);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms310_7130);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T47*)((((T22*)a1))->_name/*24*/))->_to_string/*0*/;
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r310error(X77start_position(a2),((T0*)ms12_47));
}
T0* r310get_result_type(T310* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
T0* _f=NULL;
T0* _fn2_key=NULL;
T0* _rf=NULL;
T0* _wbc=NULL;
T0* _fn2=NULL;
_wbc=r69base_class((T69*)(X77start_position(a1)));
_fn2=r22new_name_of((T22*)(r310base_class(C)),_wbc,a1);
_fn2_key=X77to_key(_fn2);
/*[IF*/
if(r317has((T317*)((C)->_feature_dictionary/*24*/),_fn2_key)){
_rf=r317at((T317*)((C)->_feature_dictionary/*24*/),_fn2_key);
R=X312result_type(_rf);
/*[IF*/
if(X46is_run_type(R)){
R=X46run_type(R);
}
else{
R=X46to_runnable(R,(C)->_current_type/*0*/);
R=X46run_type(R);
}
/*FI]*/
}
else{
_bc=r310base_class(C);
_f=r22look_up_for(((T22*)_bc),(T0*)C,_fn2);
/*[IF*/
if((_f)==((void*)(NULL))){
r310efnf(C,_bc,_fn2);
r67add_position(X77start_position(a1));
r67add_position(X77start_position(_fn2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms310_22554);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
else{
R=X87result_type(_f);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(X87start_position(_f));
r67add_position(X77start_position(a1));
r67add_position(X77start_position(_fn2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms310_51011);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
else{
R=X46to_runnable(R,(C)->_current_type/*0*/);
R=X46run_type(R);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:E_INSPECT.clear_current_type*/
/*No:E_INSPECT.nb_errors*/
/*No:E_INSPECT.else_position*/
/*No:E_INSPECT.start_position*/
T0* r220twin(T220* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T220*)R)=*C;
return R;
}
void r220add_when(T220* C,T0* a1){
/*[IF*/
if(((C)->_when_list/*12*/)==((void*)(NULL))){
{T222*n=malloc(sizeof(*n));
*n=M222;
/*[IRF3.3make*/((((T222*)(n)))->_list)=(se_ma223(1,
a1));
/*]*/
C->_when_list=(T0*)n;
}
}
else{
/*[IRF3.5add_last*/r223add_last(((T223*)(((T222*)((C)->_when_list/*12*/))->_list/*4*/)),a1);
/*]*/
}
/*FI]*/
}
/*No:E_INSPECT.set_when_list*/
T0* r220add_comment(T220* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else {/*AT*//*[IF*/
if((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(1)){
R=(T0*)C;
}
else{
{T213*n=malloc(sizeof(*n));
*n=M213;
r213make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
void r220set_else_compound(T220* C,T0* a1,T0* a2){
C->_else_position=a1;
C->_else_compound=a2;
}
/*No:E_INSPECT.expression*/
/*No:E_INSPECT.em1*/
T0* r220to_runnable(T220* C,T0* a1){
T0* R=NULL;
T0* _wl=NULL;
T0* _te=NULL;
T0* _e=NULL;
/*[IF*/
if(((C)->_current_type/*24*/)==((void*)(NULL))){
C->_current_type=a1;
_e=X53to_runnable((C)->_expression/*8*/,a1);
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
C->_expression=_e;
_te=X46run_type(X53result_type(_e));
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(X46is_character(_te)){
/*[IF*/
if(((C)->_when_list/*12*/)!=((void*)(NULL))){
C->_when_list=r222to_runnable_character((T222*)((C)->_when_list/*12*/),(T0*)C);
/*[IF*/
if(((C)->_when_list/*12*/)==((void*)(NULL))){
r220error((C)->_start_position/*4*/,((T0*)ms220_11604));
}
/*FI]*/
}
/*FI]*/
}
else if(X46is_integer(_te)){
/*[IF*/
if(((C)->_when_list/*12*/)!=((void*)(NULL))){
C->_when_list=r222to_runnable_integer((T222*)((C)->_when_list/*12*/),(T0*)C);
/*[IF*/
if(((C)->_when_list/*12*/)==((void*)(NULL))){
r220error((C)->_start_position/*4*/,((T0*)ms220_11604));
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms220_94840);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67add_type(_te,((T0*)ms220_18320));
r67add_position((C)->_start_position/*4*/);
r67print_as_error((T67*)(oBC11eh));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_else_compound/*20*/)!=((void*)(NULL))){
C->_else_compound=r204to_runnable((T204*)((C)->_else_compound/*20*/),a1);
}
/*FI]*/
R=(T0*)C;
}
else{
R=r220twin(C);
{T222*n=malloc(sizeof(*n));
*n=M222;
r222from_when_list(n,(C)->_when_list/*12*/);
_wl=(T0*)n;
}
/*[IRF3.3set_when_list*/((((T220*)(((T220*)R))))->_when_list)=(_wl);
/*]*/
/*[IRF3.3clear_current_type*/((((T220*)(((T220*)R))))->_current_type)=(NULL);
/*]*/
R=r220to_runnable(((T220*)R),a1);
}
/*FI]*/
return R;
}
/*No:E_INSPECT.else_compound*/
/*No:E_INSPECT.current_type*/
void r220error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:E_INSPECT.end_mark_comment*/
void r220make(T220* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_expression=a2;
}
/*No:E_INSPECT.includes*/
/*No:E_INSPECT.when_list*/
/*No:ARGUMENT_NAME1.start_position*/
/*No:ARGUMENT_NAME1.to_string*/
T0* r178twin(T178* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T178*)R)=*C;
return R;
}
T0* r178add_comment(T178* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T218*n=malloc(sizeof(*n));
*n=M218;
r218make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:ARGUMENT_NAME1.name_clash*/
T2 r178to_integer(T178* C){
T2 R=0;
r178error((C)->_start_position/*4*/,((T0*)ms12_45846));
return R;
}
/*No:ARGUMENT_NAME1.rank*/
T0* r178to_runnable(T178* C,T0* a1){
T0* R=NULL;
T0* _rt=NULL;
_rt=X46to_runnable((C)->_result_type/*12*/,a1);
/*[IF*/
if((_rt)==((void*)(NULL))){
r67add_position(X46start_position((C)->_result_type/*12*/));
r178error((C)->_start_position/*4*/,((T0*)ms178_13065));
}
/*FI]*/
/*[IF*/
if(((C)->_result_type/*12*/)==((void*)(_rt))){
R=(T0*)C;
}
else{
R=r178twin(C);
/*[IRF3.3set_result_type*/((((T178*)(((T178*)R))))->_result_type)=(_rt);
/*]*/
}
/*FI]*/
return R;
}
T0* r178written_in(T178* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(C)->_start_position/*4*/;
/*[IF*/
if((_sp)!=((void*)(NULL))){
R=(((T69*)_sp))->_base_class_name/*0*/;
}
/*FI]*/
return R;
}
/*No:ARGUMENT_NAME1.fz_iinaiv*/
/*No:ARGUMENT_NAME1.set_result_type*/
void r178name_clash_for(T178* C,T0* a1,T0* a2){
T0* _bc=NULL;
T0* _rc=NULL;
T0* _rf=NULL;
_bc=r178base_class_written(C);
/*[IF*/
if(r22has_simple_feature_name(((T22*)_bc),(C)->_to_string/*8*/)){
_rc=X46run_class(a1);
_rf=r310get_feature_with(((T310*)_rc),(C)->_to_string/*8*/);
/*[IF*/
if((_rf)!=((void*)(NULL))){
r67add_position(X312start_position(_rf));
}
/*FI]*/
r178error((C)->_start_position/*4*/,a2);
}
/*FI]*/
}
/*No:ARGUMENT_NAME1.result_type*/
void r178error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:ARGUMENT_NAME1.set_rank*/
/*No:ARGUMENT_NAME1.precedence*/
void r178make(T178* C,T0* a1,T0* a2){
C->_start_position=a1;
C->_to_string=r78item(a2);
}
void r178bracketed_short(T178* C){
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
r178short(C);
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
}
/*No:ARGUMENT_NAME1.is_current*/
/*No:ARGUMENT_NAME1.is_void*/
void r178short_target(T178* C){
r178short(C);
/*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
}/*]*/
}
T0* r178base_class_written(T178* C){
T0* R=NULL;
R=r47base_class((T47*)(r178written_in(C)));
return R;
}
void r178short(T178* C){
T3 _c=0;
T2 _i=0;
r39hook((T39*)(oBC11short_print),((T0*)ms170_837));
_i=1;
while (!((_i)>(((T7*)((C)->_to_string/*8*/))->_count/*4*/))) {
_c=/*(IRF4.6item*/(((T7*)((C)->_to_string/*8*/))->_storage/*0*/)[(_i)-(1)]/*)*/;
/*[IF*/
if((_c)==('\137')){
r39hook_or((T39*)(oBC11short_print),((T0*)ms170_894),((T0*)ms170_96));
}
else{
/*[IRF3.6a_character*/{T3 b1=_c;
/*[IRF3.6put_character*/{T38* C2=(T38*)(oBC1std_output);
T3 c1=b1;
putc(c1,((FILE*)(stdout)));
}/*]*/
}/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
r39hook((T39*)(oBC11short_print),((T0*)ms170_834));
}
/*No:ARGUMENT_NAME1.atomic_precedence*/
/*No:PROC_CALL_1.feature_name*/
void r151run_feature_match(T151* C,T0* a1){
r151run_feature_has_no_result(C);
r136match_with((T136*)((C)->_arguments/*16*/),(C)->_run_feature/*12*/,a1);
}
/*No:PROC_CALL_1.arguments*/
T0* r151runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X53to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(X53start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
T0* r151start_position(T151* C){
T0* R=NULL;
R=X77start_position((C)->_feature_name/*8*/);
return R;
}
T0* r151add_comment(T151* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
/*AF*/else{
{T213*n=malloc(sizeof(*n));
*n=M213;
r213make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
void r151run_feature_has_no_result(T151* C){
/*[IF*/
if((X312result_type((C)->_run_feature/*12*/))!=((void*)(NULL))){
r67add_position(X312start_position((C)->_run_feature/*12*/));
r67add_position(X77start_position((C)->_feature_name/*8*/));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms149_67122);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}
T0* r151to_runnable(T151* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r151runnable_expression((C)->_target/*4*/,a1);
_a=r151runnable_args((C)->_arguments/*16*/,a1);
_rf=r151run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*12*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r151run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*16*/)))){
R=(T0*)C;
}
else{
{T151*n=malloc(sizeof(*n));
*n=M151;
r151with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:PROC_CALL_1.fz_bad_argument*/
/*No:PROC_CALL_1.set_run_feature*/
T0* r151run_feature_for(T151* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X46run_class(X53result_type(a1));
R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*8*/,a2);
return R;
}
/*No:PROC_CALL_1.target*/
/*No:PROC_CALL_1.run_feature*/
/*No:PROC_CALL_1.end_mark_comment*/
void r151make(T151* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
T0* r151runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r136to_runnable(((T136*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(r136start_position(((T136*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
T0* r151make_runnable(T151* C,T0* a1,T0* a2,T0* a3){
T0* R=NULL;
/*[IF*/
if(((C)->_run_feature/*12*/)==((void*)(NULL))){
C->_target=a1;
C->_arguments=a2;
C->_run_feature=a3;
R=(T0*)C;
}
else{
{T151*n=malloc(sizeof(*n));
*n=M151;
r151make(n,a1,(C)->_feature_name/*8*/,a2);
R=(T0*)n;
}
/*[IRF3.3set_run_feature*/((((T151*)(((T151*)R))))->_run_feature)=(a3);
/*]*/
}
/*FI]*/
return R;
}
/*No:PROC_CALL_1.arg_count*/
void r151with(T151* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r151run_feature_match(C,a5);
}
/*No:PROC_CALL_1.fatal_error*/
/*No:CALL_INFIX_INT_REM.feature_name*/
T0* r121start_position(T121* C){
T0* R=NULL;
R=((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
T0* r121add_comment(T121* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T218*n=malloc(sizeof(*n));
*n=M218;
r218make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r121to_integer(T121* C){
T2 R=0;
r121error(r121start_position(C),((T0*)ms12_45846));
return R;
}
T0* r121to_runnable(T121* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r121runnable_expression((C)->_target/*4*/,a1);
_a=r121runnable_args((C)->_arguments/*8*/,a1);
_tt=X53result_type(_t);
_at=X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r121run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r121run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T121*n=malloc(sizeof(*n));
*n=M121;
r121with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_REM.fz_bad_argument*/
/*No:CALL_INFIX_INT_REM.fz_iinaiv*/
T0* r121result_type(T121* C){
T0* R=NULL;
T0* _tla=NULL;
R=X312result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X46is_like_current(R)){
R=/*X312current_type*/((T0*)((T326*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 246:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X46run_type(X53result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_REM.run_feature*/
T0* r121runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r136to_runnable(((T136*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(r136start_position(((T136*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms12_13065);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r121bracketed_short(T121* C){
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_6792),((T0*)ms53_41));
r121short(C);
r39hook_or((T39*)(oBC11short_print),((T0*)ms53_8645),((T0*)ms53_42));
}
void r121with(T121* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r121run_feature_match(C,a5);
}
/*No:CALL_INFIX_INT_REM.fatal_error*/
void r121run_feature_match(T121* C,T0* a1){
r121run_feature_has_result(C);
r136match_with((T136*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_INT_REM.arguments*/
T0* r121runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X53to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r67add_position(X53start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms105_16515);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_INT_REM.implicit_cast*/
/*No:CALL_INFIX_INT_REM.us_backslash_backslash*/
/*No:CALL_INFIX_INT_REM.arg1*/
void r121run_feature_has_result(T121* C){
/*[IF*/
if((X312result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r67add_position(X312start_position((C)->_run_feature/*16*/));
r67add_position(((T125*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms104_53650);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
/*FI]*/
}
T0* r121run_feature_for(T121* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X46run_class(X53result_type(a1));
R=r310get_rf(((T310*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_INT_REM.target*/
void r121error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:CALL_INFIX_INT_REM.precedence*/
void r121make(T121* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T125*n=malloc(sizeof(*n));
*n=M125;
r125make(n,r121operator(),a2);
C->_feature_name=(T0*)n;
}
{T136*n=malloc(sizeof(*n));
*n=M136;
/*[IRF3.3make_1*/((((T136*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_INT_REM.is_current*/
/*No:CALL_INFIX_INT_REM.short_print_feature_name*/
/*No:CALL_INFIX_INT_REM.is_void*/
T0* r121operator(void){
T0* R=NULL;
R=((T0*)ms13_374);
return R;
}
void r121short_target(T121* C){
r121bracketed_short(C);
/*[IRF3.6a_dot*/{T39* C1=(T39*)(oBC11short_print);
r39hook_or(C1,((T0*)ms39_999a),((T0*)ms12_47));
}/*]*/
}
void r121short(T121* C){
/*[IF*/
if((X53precedence((C)->_target/*4*/))==(13)){
X53short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T121* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
/*[IF*/
if((X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))==(13)){
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else if((8)>=(X53precedence(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
X53bracketed_short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else{
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
else if((X53precedence((C)->_target/*4*/))<(8)){
X53bracketed_short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T121* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else{
X53short((C)->_target/*4*/);
/*[IRF3.6short_print_feature_name*/{T121* C1=C;
r39a_infix_name((T39*)(oBC11short_print),((T0*)ms102_7338),((T0*)ms102_33a),((T0*)ms102_7332),((T0*)ms102_33),(C1)->_feature_name/*12*/);
}/*]*/
X53short(/*(IRF4.6arg1*//*(IRF4.3first*/(((T136*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*FI]*/
}
/*No:CALL_INFIX_INT_REM.atomic_precedence*/
/*No:WHEN_LIST.nb_errors*/
T0* r222to_runnable_integer(T222* C,T0* a1){
T0* R=NULL;
T0* _e_when=NULL;
T2 _i=0;
/*[IF*/
if(((C)->_e_inspect/*0*/)==((void*)(NULL))){
C->_e_inspect=a1;
_i=1;
while (!(((_i)>(((T223*)((C)->_list/*4*/))->_upper/*8*/))||((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
_e_when=r221to_runnable_integer((T221*)(r223item((T223*)((C)->_list/*4*/),_i)),(T0*)C);
/*[IF*/
if((_e_when)==((void*)(NULL))){
r222error(r222start_position(C),((T0*)ms222_15022));
}
else{
/*[IRF3.6put*/{T223* C1=(T223*)((C)->_list/*4*/);
T0* b1=_e_when;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
R=(T0*)C;
}
else{
{T222*n=malloc(sizeof(*n));
*n=M222;
r222from_when_list(n,(T0*)C);
R=(T0*)n;
}
R=r222to_runnable_integer(((T222*)R),a1);
}
/*FI]*/
return R;
}
T0* r222start_position(T222* C){
T0* R=NULL;
R=((T221*)(r223item((T223*)((C)->_list/*4*/),1)))->_start_position/*0*/;
return R;
}
/*No:WHEN_LIST.add_last*/
/*No:WHEN_LIST.em1*/
T6 r222includes_integer(T222* C,T2 a1){
T6 R=0;
T2 _i=0;
_i=1;
while (!((R)||((_i)>(((T223*)((C)->_list/*4*/))->_upper/*8*/)))) {
R=r221includes_integer((T221*)(r223item((T223*)((C)->_list/*4*/),_i)),a1);
_i=(_i)+(1);
}
return R;
}
void r222from_when_list(T222* C,T0* a1){
T0* _e_when=NULL;
T2 _i=0;
C->_list=r223twin((T223*)((((T222*)a1))->_list/*4*/));
_i=1;
while (!((_i)>(((T223*)((C)->_list/*4*/))->_upper/*8*/))) {
{T221*n=malloc(sizeof(*n));
*n=M221;
r221from_e_when(n,r223item((T223*)((C)->_list/*4*/),_i));
_e_when=(T0*)n;
}
/*[IRF3.6put*/{T223* C1=(T223*)((C)->_list/*4*/);
T0* b1=_e_when;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
_i=(_i)+(1);
}
}
/*No:WHEN_LIST.e_inspect*/
void r222error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:WHEN_LIST.make*/
/*No:WHEN_LIST.list*/
T0* r222to_runnable_character(T222* C,T0* a1){
T0* R=NULL;
T0* _e_when=NULL;
T2 _i=0;
/*[IF*/
if(((C)->_e_inspect/*0*/)==((void*)(NULL))){
C->_e_inspect=a1;
_i=1;
while (!(((_i)>(((T223*)((C)->_list/*4*/))->_upper/*8*/))||((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)))) {
_e_when=r221to_runnable_character((T221*)(r223item((T223*)((C)->_list/*4*/),_i)),(T0*)C);
/*[IF*/
if((_e_when)==((void*)(NULL))){
r222error(r222start_position(C),((T0*)ms222_15022));
}
else{
/*[IRF3.6put*/{T223* C1=(T223*)((C)->_list/*4*/);
T0* b1=_e_when;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
_i=(_i)+(1);
}
R=(T0*)C;
}
else{
{T222*n=malloc(sizeof(*n));
*n=M222;
r222from_when_list(n,(T0*)C);
R=(T0*)n;
}
R=r222to_runnable_character(((T222*)R),a1);
}
/*FI]*/
return R;
}
T0* r271run_require(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _ar=NULL;
T0* _hc=NULL;
T0* _er=NULL;
T0* _r=NULL;
T2 _i=0;
r315clear((T315*)(oBC87require_collector));
_ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
r22collect_for((T22*)(X46base_class(_ct)),1,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
/*[IF*/
if(!(r315empty((T315*)(oBC87require_collector)))){
_i=1;
while (!((_i)>(((T315*)(oBC87require_collector))->_upper/*8*/))) {
_er=r315item((T315*)(oBC87require_collector),_i);
_hc=(((T272*)_er))->_header_comment/*4*/;
/*[IF*/
if(!(/*(IRF4.7empty*/((((T272*)_er))->_list/*8*/)==(NULL)/*)*/)){
_r=r271runnable((((T272*)_er))->_list/*8*/,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T272*n=malloc(sizeof(*n));
*n=M272;
r272make_runnable(n,_r,_ct,a1);
_er=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T272*)(((T272*)_er))))->_header_comment)=(_hc);
/*]*/
/*[IF*/
if((_ar)==((void*)(NULL))){
_ar=se_ma315(1,
_er);
}
else{
r315add_last(((T315*)_ar),_er);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if((_ar)!=((void*)(NULL))){
{T314*n=malloc(sizeof(*n));
*n=M314;
/*[IRF3.3make*/((((T314*)(n)))->_list)=(_ar);
/*]*/
R=(T0*)n;
}
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:DEFERRED_PROCEDURE.base_class*/
void r271set_rescue_compound(T271* C,T0* a1){
/*[IF*/
if((a1)!=((void*)(NULL))){
r67add_position(r204start_position(((T204*)a1)));
}
else{
r67add_position(r271start_position(C));
}
/*FI]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms270_125161);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67print_as_fatal_error((T67*)(oBC11eh));
}
T0* r271start_position(T271* C){
T0* R=NULL;
R=X77start_position(/*(IRF4.6first_name*/r79item(((T79*)((C)->_names/*8*/)),1)/*)*/);
return R;
}
T6 r271is_merge_with(T271* C,T0* a1,T0* a2){
T6 R=0;
R=1;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
{/*AT*/R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
R=0;
}
else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
R=0;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2);
}
/*FI]*/
/*[IF*/
if(!(R)){
R=1;
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
R=r175is_a_in((T175*)(X87arguments(a1)),(C)->_arguments/*20*/,a2);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(R){
r271merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
T0* r271runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(!(r50empty(((T50*)a1)))){
R=r50twin(((T50*)a1));
_i=(((T50*)R))->_upper/*8*/;
while (!((_i)==(0))) {
r59push((T59*)(oBC11small_eiffel),a3);
_a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
/*[IF*/
if((_a)==((void*)(NULL))){
r271error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
}
else{
/*[IRF3.6put*/{T50* C1=((T50*)R);
T0* b1=_a;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
r59pop((T59*)(oBC11small_eiffel));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
/*No:DEFERRED_PROCEDURE.first_name*/
/*No:DEFERRED_PROCEDURE.em1*/
/*No:DEFERRED_PROCEDURE.header_comment*/
/*No:DEFERRED_PROCEDURE.names*/
/*No:DEFERRED_PROCEDURE.fz_03*/
/*No:DEFERRED_PROCEDURE.result_type*/
/*No:DEFERRED_PROCEDURE.code_require*/
/*No:DEFERRED_PROCEDURE.make_e_feature*/
void r271add_into(T271* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
C->_base_class=r69base_class((T69*)(X77start_position(r79item((T79*)((C)->_names/*8*/),1))));
_i=1;
while (!((_i)>(r79count((T79*)((C)->_names/*8*/))))) {
_fn=r79item((T79*)((C)->_names/*8*/),_i);
/*[IF*/
if(r86has(((T86*)a1),X77to_key(_fn))){
_fn=/*X87first_name*/((T0*)/*(IRF4.6first_name*/r79item(((T79*)(((T187*)(r86at(((T86*)a1),X77to_key(_fn))))->_names/*8*/)),1)/*)*/);
r67add_position(X77start_position(_fn));
r67add_position(X77start_position(r79item((T79*)((C)->_names/*8*/),_i)));
r67error((T67*)(oBC11eh),((T0*)ms87_41905));
/*[IRF3.6append*/{T0* b1=X77to_string(_fn);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
else{
r86put(((T86*)a1),(T0*)C,X77to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r271can_hide(T271* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X87result_type(a1)))){
/*[IF*/
{/*AT*/r67add_position(X87start_position(a1));
r271error(r271start_position(C),((T0*)ms87_64647));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(X87arguments(a1)))){
/*[IF*/
if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X87arguments(a1))==((void*)(NULL)))){
r67add_position(X87start_position(a1));
r271error(r271start_position(C),((T0*)ms87_83182));
}
else if((/*(IRF4.6count*/(((T179*)(((T175*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T179*)(((T175*)(X87arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
r67add_position(X87start_position(a1));
r271error(r271start_position(C),((T0*)ms87_67155));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
/*[IF*/
if(((C)->_arguments/*20*/)!=((void*)(NULL))){
/*[IF*/
if(!(r175is_a_in((T175*)((C)->_arguments/*20*/),X87arguments(a1),a2))){
r67add_position(X87start_position(a1));
r67add_position(r271start_position(C));
/*[IRF3.6append*/{T0* b1=((T0*)ms87_54285);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46run_time_mark((((T310*)a2))->_current_type/*0*/);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67error((T67*)(oBC11eh),((T0*)ms12_47));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0);
/*[IF*/
if(R){
r271merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
/*No:DEFERRED_PROCEDURE.ensure_assertion*/
T0* r271run_ensure(T0* a1){
T0* R=NULL;
T0* _ct=NULL;
T0* _r=NULL;
r50clear((T50*)(oBC87assertion_collector));
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
}/*]*/
_ct=/*X312current_type*/((T0*)(((T326*)a1))->_current_type/*4*/);
r22collect_for((T22*)(X46base_class(_ct)),2,/*X312name*/((T0*)(((T326*)a1))->_name/*16*/));
_r=r271runnable(oBC87assertion_collector,_ct,a1);
/*[IF*/
if((_r)!=((void*)(NULL))){
{T203*n=malloc(sizeof(*n));
*n=M203;
r203make_runnable(n,_r,_ct,a1);
R=(T0*)n;
}
/*[IRF3.3set_header_comment*/((((T203*)(((T203*)R))))->_header_comment)=(((T332*)(oBC87header_comment_memory))->_item/*0*/);
/*]*/
/*[IRF3.3clear*/{T0* _default_item=NULL;
((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(_default_item);
}/*]*/
}
/*FI]*/
return R;
}
void r271check_obsolete(T271* C){
/*[IF*/
if(!(((T59*)(oBC11small_eiffel))->_short_flag/*0*/)){
/*[IF*/
if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
/*[IRF3.6append*/{T0* b1=((T0*)ms202_39396);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T158*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r271warning(r271start_position(C),((T0*)ms12_166));
}
/*FI]*/
}
/*FI]*/
}
T0* r271try_to_undefine(T271* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
r67add_position(X77start_position(a1));
_fn2=r79feature_name((T79*)((C)->_names/*8*/),X77to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X77undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC67explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T68*)((T68*)(oBC67positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=/*(IRF4.4try_to_undefine_aux*/((T0*)(C))/*)*/;
/*[IF*/
if((R)!=((void*)(NULL))){
/*X270set_clients*//*[IRF3.3set_clients*/((((T273*)(((T273*)R))))->_clients)=((C)->_clients/*16*/);
/*]*/
r271merge_header_comments(C,R);
}
else{
r22fatal_undefine(((T22*)a2),a1);
}
/*FI]*/
return R;
}
/*No:DEFERRED_PROCEDURE.is_deferred*/
/*No:DEFERRED_PROCEDURE.set_clients*/
/*No:DEFERRED_PROCEDURE.code_ensure*/
/*No:DEFERRED_PROCEDURE.nb_errors*/
void r271make_routine(T271* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T271*)(C)))->_names)=(a1);
/*]*/
C->_header_comment=a4;
C->_arguments=a2;
C->_obsolete_mark=a3;
C->_require_assertion=a5;
}
T0* r271to_run_feature(T271* C,T0* a1,T0* a2){
T0* R=NULL;
r271check_obsolete(C);
{T330*n=malloc(sizeof(*n));
*n=M330;
r330make(n,a1,a2,(T0*)C);
R=(T0*)n;
}
return R;
}
void r271merge_header_comments(T271* C,T0* a1){
/*[IF*/
if(((T59*)(oBC11small_eiffel))->_short_flag/*0*/){
/*[IF*/
if(((C)->_header_comment/*12*/)==((void*)(NULL))){
C->_header_comment=/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/);
}
else if((/*X87header_comment*/((T0*)(((T187*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X87set_header_comment(a1,(C)->_header_comment/*12*/);
}
/*FI]*/
}
/*FI]*/
}
/*No:DEFERRED_PROCEDURE.arguments*/
/*No:DEFERRED_PROCEDURE.require_assertion*/
void r271warning(T0* a1,T0* a2){
r67add_position(a1);
r67warning((T67*)(oBC11eh),a2);
}
/*No:DEFERRED_PROCEDURE.try_to_undefine_aux*/
/*No:DEFERRED_PROCEDURE.set_ensure_assertion*/
/*No:DEFERRED_PROCEDURE.fz_bad_assertion*/
/*No:DEFERRED_PROCEDURE.fz_dot*/
void r271error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:DEFERRED_PROCEDURE.make*/
/*No:DEFERRED_PROCEDURE.end_comment*/
void r271collect_for(T271* C,T2 a1){
T0* _er=NULL;
/*[IF*/
if((a1)==(1)){
_er=(C)->_require_assertion/*28*/;
/*[IF*/
if((_er)!=((void*)(NULL))){
/*[IF*/
if(!(r315fast_has((T315*)(oBC87require_collector),_er))){
r315add_last((T315*)(oBC87require_collector),_er);
}
/*FI]*/
}
/*FI]*/
}
else{
/*[IF*/
if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
/*[IRF3.3set_item*/((((T332*)((T332*)(oBC87header_comment_memory))))->_item)=(((T203*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
/*]*/
r203add_into((T203*)((C)->_ensure_assertion/*32*/),oBC87assertion_collector);
}
/*FI]*/
}
/*FI]*/
}
void r271from_effective(T271* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
{T79*n=malloc(sizeof(*n));
*n=M79;
/*[IRF3.3make_1*/((((T79*)(n)))->_first)=(a1);
/*]*/
C->_names=(T0*)n;
}
r271make_routine(C,(C)->_names/*8*/,a2,NULL,NULL,a3);
/*[IRF3.3set_ensure_assertion*/((((T271*)(C)))->_ensure_assertion)=(a4);
/*]*/
C->_base_class=a5;
}
void r271set_header_comment(T271* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r34count(((T34*)((((T52*)a1))->_list/*4*/)))/*)*/)>(1))){
C->_end_comment=a1;
}
/*FI]*/
}
/*No:DEFERRED_PROCEDURE.clients*/
/*No:DEFERRED_PROCEDURE.obsolete_mark*/
/*No:CHECK_INVARIANT.nb_errors*/
/*No:CHECK_INVARIANT.start_position*/
T0* r207twin(T207* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T207*)R)=*C;
return R;
}
T0* r207runnable(T0* a1,T0* a2,T0* a3){
T0* R=NULL;
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(!(r50empty(((T50*)a1)))){
R=r50twin(((T50*)a1));
_i=(((T50*)R))->_upper/*8*/;
while (!((_i)==(0))) {
r59push((T59*)(oBC11small_eiffel),a3);
_a=r49to_runnable((T49*)(r50item(((T50*)R),_i)),a2);
/*[IF*/
if((_a)==((void*)(NULL))){
r207error(r49start_position((T49*)(r50item(((T50*)R),_i))),((T0*)ms12_14266));
}
else{
/*[IRF3.6put*/{T50* C1=((T50*)R);
T0* b1=_a;
T2 b2=_i;
((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
}/*]*/
}
/*FI]*/
r59pop((T59*)(oBC11small_eiffel));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
/*No:CHECK_INVARIANT.header_comment*/
T0* r207to_runnable(T207* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((C)->_current_type/*12*/)==((void*)(NULL))){
C->_current_type=a1;
C->_run_feature=r59top_rf((T59*)(oBC11small_eiffel));
/*[IF*/
if(((C)->_list/*8*/)!=((void*)(NULL))){
C->_list=r207runnable((C)->_list/*8*/,a1,(C)->_run_feature/*16*/);
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)==(0)){
R=(T0*)C;
}
/*FI]*/
}
else{
R=r207twin(C);
/*[IRF3.3set_current_type*/((((T207*)(((T207*)R))))->_current_type)=(NULL);
/*]*/
R=r207to_runnable(((T207*)R),a1);
}
/*FI]*/
return R;
}
/*No:CHECK_INVARIANT.set_current_type*/
/*No:CHECK_INVARIANT.fz_bad_assertion*/
/*No:CHECK_INVARIANT.current_type*/
void r207error(T0* a1,T0* a2){
r67add_position(a1);
r67error((T67*)(oBC11eh),a2);
}
/*No:CHECK_INVARIANT.run_feature*/
void r207make(T207* C,T0* a1,T0* a2,T0* a3){
C->_start_position=a1;
C->_header_comment=a2;
C->_list=a3;
}
/*No:CHECK_INVARIANT.list*/
/*No:COMPOUND.nb_errors*/
T0* r204start_position(T204* C){
T0* R=NULL;
/*[IF*/
if((r204count(C))>(0)){
R=X148start_position((C)->_first_one/*8*/);
}
/*FI]*/
return R;
}
T0* r204item(T204* C,T2 a1){
T0* R=NULL;
/*[IF*/
if((a1)==(1)){
R=(C)->_first_one/*8*/;
}
else{
R=/*(IRF4.6item*/(((T205*)((C)->_remainder/*12*/))->_storage/*0*/)[(a1)-(2)]/*)*/;
}
/*FI]*/
return R;
}
/*No:COMPOUND.header_comment*/
/*No:COMPOUND.first_one*/
T0* r204to_runnable(T204* C,T0* a1){
T0* R=NULL;
T0* _i2=NULL;
T0* _i1=NULL;
T2 _i=0;
/*[IF*/
if(((C)->_first_one/*8*/)==((void*)(NULL))){
R=(T0*)C;
}
else if(((C)->_current_type/*4*/)==((void*)(NULL))){
C->_current_type=a1;
_i=r204count(C);
while (!((_i)==(0))) {
_i1=r204item(C,_i);
_i2=X148to_runnable(_i1,a1);
/*[IF*/
if((/*(IRF4.9nb_errors*/((T67*)(oBC11eh))->_nb_errors/*4*//*)*/)>(0)){
/*[IRF3.6append*/{T0* b1=((T0*)ms204_59163);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X46written_mark((C)->_current_type/*4*/);
r7append((T7*)(oBC67explanation),b1);
}/*]*/
r67add_position(X148start_position(_i1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms204_180);
r67fatal_error((T67*)(oBC11eh),b1);
}/*]*/
}
else{
r204put(C,_i2,_i);
}
/*FI]*/
_i=(_i)-(1);
}
R=(T0*)C;
}
else{
{T204*n=malloc(sizeof(*n));
*n=M204;
r204from_compound(n,(T0*)C);
R=(T0*)n;
}
R=r204to_runnable(((T204*)R),a1);
}
/*FI]*/
return R;
}
/*No:COMPOUND.current_type*/
T2 r204count(T204* C){
T2 R=0;
/*[IF*/
if(((C)->_first_one/*8*/)==((void*)(NULL))){
}
else if(((C)->_remainder/*12*/)!=((void*)(NULL))){
R=(((T205*)((C)->_remainder/*12*/))->_upper/*8*/)+(2);
}
else{
R=1;
}
/*FI]*/
return R;
}
void r204make(T204* C,T0* a1,T0* a2,T0* a3){
C->_header_comment=a1;
C->_first_one=a2;
C->_remainder=a3;
}
/*No:COMPOUND.remainder*/
void r204put(T204* C,T0* a1,T2 a2){
/*[IF*/
if((a2)==(1)){
C->_first_one=a1;
}
else{
/*[IRF3.5put*/(((T205*)((C)->_remainder/*12*/))->_storage/*0*/)[(a2)-(2)]=(a1);
/*]*/
}
/*FI]*/
}
void r204from_compound(T204* C,T0* a1){
C->_header_comment=(((T204*)a1))->_header_comment/*0*/;
C->_first_one=(((T204*)a1))->_first_one/*8*/;
C->_remainder=(((T204*)a1))->_remainder/*12*/;
/*[IF*/
if(((C)->_remainder/*12*/)!=((void*)(NULL))){
C->_remainder=r205twin((T205*)((C)->_remainder/*12*/));
}
/*FI]*/
}
/*No:COMPOUND.fatal_error*/